package com.jrx.anytxn.investor.service;

import com.jrx.anytxn.common.exception.TxnException;
import com.jrx.anytxn.investor.bean.InvestorPaymentSaveBean;
import com.jrx.anytxn.investor.entity.AmLoanAccountInvestorInfo;
import com.jrx.anytxn.investor.entity.AmLoanMainInvestorInfo;
import com.jrx.anytxn.investor.entity.AmRepaymentPlanInvestorInfo;
import com.jrx.anytxn.transaction.bean.DelqParamBean;

import java.util.Date;
import java.util.List;

/**
 * @program: anytxn-cf-transaction
 * @description:
 * @author: xiaoyu.jing
 * @date: 2020-05-26 13:55
 **/
public interface IInvestorFeeService {

    /**
     * 计算提前结清手续费,获取提前结清费用交易账户,分期费用交易账户，利息交易账户
     * @param saveBean
     * @param loanMain
     * @param loanAcct
     * @param planList
     * @param delqParamBean
     * @param bussinessDate
     * @throws TxnException
     */
    void castPayOffFeeAndIntrAcct(InvestorPaymentSaveBean saveBean, AmLoanMainInvestorInfo loanMain, AmLoanAccountInvestorInfo loanAcct,
                                  List<AmRepaymentPlanInvestorInfo> planList, DelqParamBean delqParamBean, Date bussinessDate) throws TxnException;

    /**
     * 计算提前还款手续费,获取费用交易账户
     * @param loanMain
     * @param loanAcct
     * @param bussinessDate
     * @param liabilityFlag
     * @return
     * @throws TxnException
     */
    void castPrePayFeeAcct(InvestorPaymentSaveBean saveBean,AmLoanMainInvestorInfo loanMain, AmLoanAccountInvestorInfo loanAcct, Date bussinessDate,
                           String liabilityFlag) throws TxnException;

}
